using System.Net;

namespace AndyPike.Unfuddle.Contracts
{
    /// <summary>
    /// Provides an interface for a mechenisium for creating a HttpWebRequest with the required headers for use with Unfuddle 
    /// </summary>
    public interface IHttpWebRequestFactory
    {
        /// <summary>
        /// Creates a HttpWebRequest with the required headers for use with Unfuddle
        /// </summary>
        /// <param name="url">The url of the Unfuddle resource to call</param>
        /// <param name="username">The Unfuddle account username to use during authentication</param>
        /// <param name="password">The Unfuddle account password to use during authentication</param>
        /// <param name="httpMethod">The http verb which should be used as the request method</param>
        /// <returns>Returns a valid HttpWebRequest ready for invoking</returns>
        HttpWebRequest Create(string url, string username, string password, HttpMethod httpMethod);
    }
}